package entity

import (
	"github.com/gogf/gf/v2/os/gtime"
)

type Role struct {
	Id                       int64       `json:"id" q:"-" dc:""`                                                                     //
	Name                     string      `json:"name" q:"LIKE" dc:"角色名"`                                                             //角色名
	Code                     string      `json:"code" q:"EQ" dc:"角色编码"`                                                              //角色编码
	Description              string      `json:"description" q:"EQ" dc:"角色描述full description"`                                       //角色描述full description
	FdLevel                  string      `json:"fdLevel" q:"EQ" dc:"角色级别"`                                                           //角色级别
	TenantCode               string      `json:"tenantCode" q:"EQ" dc:"租户编码"`                                                        //租户编码
	InheritRoleId            int64       `json:"inheritRoleId" q:"EQ" dc:"继承角色ID"`                                                   //继承角色ID
	ParentRoleId             int64       `json:"parentRoleId" q:"EQ" dc:"父级角色ID"`                                                    //父级角色ID
	ParentRoleAssignLevel    string      `json:"parentRoleAssignLevel" q:"EQ" dc:"父级角色分配层级"`                                         //父级角色分配层级
	ParentRoleAssignLevelVal int64       `json:"parentRoleAssignLevelVal" q:"EQ" dc:"父级角色分配值"`                                       //父级角色分配值
	IsModified               int8        `json:"isModified" q:"EQ" dc:"是否可以修改。1表示可以，0不可以"`                                           //是否可以修改。1表示可以，0不可以
	IsEnableForbidden        int8        `json:"isEnableForbidden" q:"EQ" dc:"是否可以被禁用"`                                              //是否可以被禁用
	IsBuiltIn                int8        `json:"isBuiltIn" q:"EQ" dc:"是否内置。1表示是，0表示不是"`                                              //是否内置。1表示是，0表示不是
	IsAssignable             int8        `json:"isAssignable" q:"EQ" dc:"是否禁止在更高的层次上分配，禁止project role在organization上分配。1表示可以，0表示不可以"` //是否禁止在更高的层次上分配，禁止project role在organization上分配。1表示可以，0表示不可以
	LevelPath                string      `json:"levelPath" q:"EQ" dc:"角色层次关系"`                                                       //角色层次关系
	InheritLevelPath         string      `json:"inheritLevelPath" q:"EQ" dc:"角色继承生成层次关系"`                                            //角色继承生成层次关系
	CreatedByTenantId        int64       `json:"createdByTenantId" q:"EQ" dc:"创建者租户ID"`                                              //创建者租户ID
	TplRoleName              string      `json:"tplRoleName" q:"LIKE" dc:"模板角色的子角色名称"`                                               //模板角色的子角色名称
	RoleHierarchy            int8        `json:"roleHierarchy" q:"EQ" dc:"角色体系，0-多级版(默认) 1-单级版"`                                     //角色体系，0-多级版(默认) 1-单级版
	EnableRolePermission     int8        `json:"enableRolePermission" q:"EQ" dc:"角色是否能操作数据权限等功能"`                                    //角色是否能操作数据权限等功能
	RoleTypeCode             string      `json:"roleTypeCode" q:"EQ" dc:"角色类型：GEN-普通角色，SG-安全组角色"`                                    //角色类型：GEN-普通角色，SG-安全组角色
	Creator                  string      `json:"creator" q:"EQ" dc:"创建人"`                                                            //创建人
	CreatorId                string      `json:"creatorId" q:"EQ" dc:"创建人id"`                                                        //创建人id
	CreateDate               *gtime.Time `json:"createDate" q:"BETWEEN" dc:"创建时间"`                                                   //创建时间
	Modifier                 string      `json:"modifier" q:"EQ" dc:"修改者"`                                                           //修改者
	ModifierId               string      `json:"modifierId" q:"EQ" dc:"修改者id"`                                                       //修改者id
	ModifyDate               *gtime.Time `json:"modifyDate" q:"BETWEEN" dc:"修改时间"`                                                   //修改时间
	State                    int8        `json:"state" q:"-" dc:"状态（1正常 0停用）"`                                                       //状态（1正常 0停用）
	VersionNumber            int64       `json:"versionNumber" q:"-" dc:"版本号"`                                                       //版本号
}
